1. Field of the Invention
The present invention relates to an image forming apparatus, an information processing method, and a storage medium.
2. Description of the Related Art
An image forming apparatus, such as a copying machine or a laser printer, includes a controller that is capable of receiving print data from a host computer, interpreting the received data and performing image processing on the received data, and generating image data to be printed. The host computer includes an application and a printer driver that can generate print data described using a page description language (PDL) and can transmit the data to the controller via a network or an appropriate communication medium. The PDL is, for example, LIPS provided by CANON Inc. or PostScript (registered trademark) provided by Adobe Systems Inc., or PCL (registered trademark) provided by Hewlett-Packard Company.
In a conventional color printer having an output speed different in color output and monochrome output, determining whether the page is a monochrome page or a color page is performed for each page to be processed, for the purpose of improving the total throughput of print processing. Further, if a color printer performs a color output operation for a page exclusively constituted by a gray scale, an obtainable print result will be deteriorative in quality because the printer performs printing by overlapping CMYK toner images.
As an example color/monochrome determination method, it is conventionally known to check CMYK values that constitute each page to be processed and, if CMY values are detected, determining the page is a color page. As another method, it is conventionally known to determine that a page to be processed is a monochrome page if input RGB values that constitute the page are equal to each other. It is conventionally known that a maintenance fee applied to a color output is set differently from a maintenance fee applied to a monochrome output in a color multifunction peripheral. In which case, the total maintenance fee may become an unpredicted value for a user.
Hence, as a method capable of controlling color/monochrome determination result, it is conventionally proposed to provide an additional configuration capable of compensating a gray color in color management (i.e., color conversion processing). According to the above-described conventional method, the color/monochrome determination can be effectively performed after the color management. In particular, according to PostScript, it is difficult to perform the color/monochrome determination for the page before performing the color management. In this respect, as discussed in Japanese Patent No. 4424718, it is conventionally known to perform the color/monochrome determination according to color management settings.
On the other hand, a massive amount of complicated PDL data tends to be generated due to improvement in performance of a host computer as well as advancement in functionality of each application. Although improvement in general CPU performance enables a controller to have improved PDL processing capabilities, the PDL processing may still be insufficient to attain a required engine throughput.
Recently, improvement of the CPU clock has been substantially saturated. There is a trend toward using a multi-core processor that incorporates a plurality of cores in a single package. To fully use the performance of the multi-core CPU, it is necessary to perform parallel PDL processing. For example, as one of conventionally proposed methods, a job parallel processing method is known by using a plurality of cores to concurrently perform PDL processing on a plurality of jobs. The job parallel processing method is effective to improve the entire productivity when a large amount of job is processed.
However, the time required for a multi-core processor to perform PDL processing on a single job is not different from the time required for a single-core processor to perform the same processing.
Further, as another method, there is a page parallel processing method known which uses a plurality of cores to concurrently perform PDL processing on a plurality of pages included in a single job. The page parallel processing method is effective to improve the processing speed per job. However, it is required to describe print data using a page-independent PDL that has no dependence relationship between pages.
Further, the time required for a multi-core processor to perform PDL processing on a single page of a job is not different from the time required for a single-core processor to perform the same processing. It will take a long time to perform PDL processing on a page rendered in a complicated manner. It may become a bottleneck even in the page parallel processing method.
Further, as another method, there is an object parallel processing method that is known which uses a plurality of cores to concurrently perform PDL processing on a plurality of rendering objects included in a single page. The object parallel processing method is effective to reduce the PDL processing time per single page. However, it is known that the calculation cost required in division and collection of objects is high. In view of the efficiency in parallel processing, either the job parallel processing method or the page parallel processing method is desired.
The page parallel processing method can be classified into a complete page parallel processing method and a partial page parallel processing method. The complete page parallel processing method discussed in Japanese Patent No. 4417153 is a method for completely performing parallel processing for each page with respect to PDL processing that can be executed by a controller CPU. On the other hand, the partial page parallel processing method discussed in U.S. Patent Application Publication No. 2010/0277757 is a method for performing parallel processing for a part of PDL processing and performing duplicate processing for the rest.
An interpreter that interprets PDL data is required to start processing with the first page and sequentially process the remaining pages in ascending order if the PDL has a dependence relationship between the pages, because a processing result obtained through the processing for preceding pages is stored as a status in the interpreter. However, it is relatively easy to remove the dependency between pages for a graphics library, a display list generation unit, and a renderer, which are subordinate components of the interpreter.
Therefore, the interpreter can perform duplicate processing to perform parallel processing, for each page, for the subordinate components. Although the partial page parallel processing is inferior to the complete page parallel processing method in concurrency, the partial page parallel processing is advantageous in performing parallel processing on a PDL that has dependence relationship between pages.
In a case where the color management precedes the color/monochrome determination, the image quality of an output image may deteriorate if it is required to perform the determination faithfully to the original data. For example, a portion where the original data looks like a gray scale requires color conversion processing according to which none of the CMY colors is applied after the color management (hereinafter, referred to as “color/monochrome determination priority mode”).
If none of the CMY colors is applied, namely when only the K color is used to output an image, a significant deterioration may be recognized in image quality (e.g., coarseness or collapse of gray gradation). If only the K color is applied to an area exceeding a predetermined size, the coarseness will increase significantly, as understood in comparison with an image obtainable by applying a plurality of (e.g., CMYK) colors. Further, the gradation tends to collapse because an original data portion where the gradation of a high-density region is expressed using four (i.e., CMYK) colors is expressed using only the K color or by applying a smaller amount of color.
The reason why a smaller application amount is used in expression is because reducing the usage amounts of respective CMY colors is required as a whole to maintain the continuity with a neighboring gray portion even when the original data includes a mixing portion of a gray color and a chromatic color. Color conversion processing that applies CMY colors after the color management (hereinafter, referred to as “image quality priority mode”) is desired to obtain excellent image quality, even at a portion where the original data looks like a gray scale. In short, the fidelity to original data in the color/monochrome determination is in a trade-off relationship with the quality of a printed image.
The above-described problem arises when the color management is performed prior to the color/monochrome determination. In other words, the above-described problem does not arise if the color/monochrome determination is performed prior to the color management. In this case, the image quality priority mode can be selected if the determination result is “color”, and the color/monochrome determination priority mode can be selected if the determination result is “monochrome.”
However, the color management if performed after the color/monochrome determination may induce a significant deterioration in performance. For example, it may be required to check the entire data of one page to perform the color/monochrome determination for a processing target page. In such a case, data spool of at least one page is required. Although there is a method using a display list or a rendering image, in the data spool, it is necessary to hold information required in the color management for the following processing. This is one of the factors that may cause deterioration in performance.